﻿package juego.naves
{
	
	import reglas.entidades.*;
	import motor.colision.*;
	import flash.events.*;
	import flash.utils.Timer;
	
	import juego.naves.componentes.*;
	import juego.naves.componentes.armas.*;
	
	public class Nave extends EntidadControladaMovimiento
	{
		protected var tipoG:int;
		
		private var timerDisparo:Timer;
		
		public function Nave(xx:Number, yy:Number, unNombre:String, tipoGrupo:int)
		{			
			tipoG=tipoGrupo;
			super(xx,yy,unNombre);
			armarComponentesBasicos();
			timerDisparo = new Timer (125);
			timerDisparo.addEventListener("timer", timerHandler);
			timerDisparo.start();
			
		}	
		
		
		override protected function crearCuerpo(xx:Number, yy:Number, velX:Number, velY:Number,ancho:Number, alto:Number):Cuerpo
		{
			return Cuerpos.getInstancia().crearCuerpoGrupo (xx,yy,velX,velY,ancho,alto,tipoG);
		}
		
		protected function armarComponentesBasicos ()
		{
			var armaBasica:ArmaA = new ArmaA(cuerpoFisico.xReal+32,cuerpoFisico.yReal,nombre,tipoG);
			addObserver(armaBasica);
			armaBasica = new ArmaA(cuerpoFisico.xReal-12,cuerpoFisico.yReal,nombre,tipoG);
			addObserver(armaBasica);
		}
		
		public function timerHandler(event:TimerEvent):void 
		{
            trace("timerHandler: " + event);
			updateEstado1(EntidadControladaMovimiento.ESTADO_DISPARAR_ARMAR_PRINCIPAL);
        }
		
		override public function destroy ()
		{
			timerDisparo.stop();
			timerDisparo.removeEventListener("timer", timerHandler);
			super.destroy();
		}

		
	}
}